#define _CRT_SECURE_NO_WARNINGS 1


//#include<algorithm>
//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//vector<vector<int>> fourSum(vector<int>& nums, int target)
//{
//    vector<vector<int>> vv;
//    sort(nums.begin(), nums.end());
//    int size = nums.size();
//    int a = 0;
//    while (a < size - 3)
//    {
//        int b = a + 1;
//        while (b < size - 2)
//        {
//            int left = b + 1, right = size - 1;
//            while (left < right)
//            {
//                if (nums[left] + nums[right] > target - nums[b] - nums[a])
//                {
//                    right--;
//                }
//                else if (nums[left] + nums[right] < target - nums[b] - nums[a])
//                {
//                    left++;
//                }
//                else
//                {
//                    vector<int> v;
//                    v.push_back(nums[a]);
//                    v.push_back(nums[b]);
//                    v.push_back(nums[left]);
//                    v.push_back(nums[right]);
//                    vv.push_back(v);
//                    left++;
//                    while (left < size && nums[left] == nums[left - 1])
//                    {
//                        left++;
//                    }
//                    right--;
//                    while (right >= 0 && nums[right] == nums[right + 1])
//                    {
//                        right--;
//                    }
//                }
//            }
//            b++;
//            while (b < size - 2 && nums[b] == nums[b - 1])
//            {
//                b++;
//            }
//        }
//        a++;
//        while (a < size - 3 && nums[a] == nums[a - 1])
//        {
//            a++;
//        }
//    }
//    return vv;
//}
//
//int main()
//{
//    vector<int> v = { 1,0,-1,0,-2,2 };
//    vector<vector<int>> vv = fourSum(v, 0);
//
//    return 0;
//}


#include<vector>
#include<iostream>

using namespace std;

int minSubArrayLen(int target, vector<int>& nums)
{
    int left = 0, right = 0;
    int size = nums.size();
    int Min = INT_MAX;
    int sum = 0;
    while (right < size)
    {
        while (right < size && sum < target)
        {
            sum += nums[right];
            right++;
        }
        if (sum >= target)
        {
            Min = min(right - left, Min);
        }
        sum -= nums[left];
        left++;
        if (sum >= target)
        {
            Min = min(right - left, Min);
        }
    }
    return Min;
}

int main()
{
    vector<int> v = { 2,3,1,2,4,3 };
    cout << minSubArrayLen(7, v) << endl;

	return 0;
}